Platform Explorer / Nuxeo Platform 2023.10

Extension point types

Documentation

A document type has the following properties:

- id: its string identifier

- remove: if true, remove this ecm document type. Can be used, for instance, if there is a document type contributed by nuxeo-dm that you don't want in your application. (Be careful to add a dependency to the contribution that creates this document type.)

- icon: icon path used to represent the document type.

- icon-expanded: icon used for instance in tree view

- bigIcon: icon path aimed at rich application

- bigIcon-expanded: same as icon-expanded for rich application

- category: Category of the document type.

- description: Description of the document type.

- label: string title.

- subtypes: list of the allowed sub document types for a given container. This can be used to filter some document types creation and copy to specific kinds of container documents.

- deniedSubtypes: list of forbidden sub document types for a given container. Useful when you inherit from another container type and want to restrict its subtypes.

- default-view: this view will be returned when accessing the document.

- create-view: this view will be returned when creating the document.

- edit-view: this view can be used to display the document default edit page.

- views: other views can be defined, so that they can be customized easily and trigger specific behaviour. For instance, defining a view named 'after-edit' on the document will allow to parameter which view should be displayed after the document edition.

WARNING: the views definitions and associated behaviours may change in the future. You should avoid customizing more than default-view and create-view for now.

- layouts: the list of layouts to use in a given mode. Usual modes are "view", "create" and "edit". When no layouts are defined for a specific mode, layouts for the mode "any" are taken for document rendering. An additional mode is "listing": layouts defined in this mode are used in templates listing children documents.

- content views: the list of content views to use in a given category. Categories depend on the page displaying the content views. Available since 5.4.0. By default, all content views are shown in the export view of the document (available since 5.4.2) except when adding showInExportView="false" on the content view definition.

Example:

    <type id="Domain">
        <label>Domain</label>
        <icon>/icons/folder.gif</icon>
        <default-view>view_documents</default-view>
        <subtypes>
            <type>WorkspaceRoot</type>
            <type>SectionRoot</type>
        </subtypes>
        <deniedSubtypes>
            <type>File</type>
        </deniedSubtypes>
        <layouts mode="any">
            <layout>heading</layout>
        </layouts>
        <layouts mode="listing">
            <layout>document_listing</layout>
            <layout>document_listing_compact_2_columns</layout>
            <layout>document_listing_icon_2_columns</layout>
        </layouts>
        <contentViews category="content">
            <contentView>document_content</contentView>
        </contentViews>
        <contentViews category="trash_content">
            <contentView showInExportView="false">
              document_trash_content
            </contentView>
        </contentViews>
    </type>

Types extension point provides merging features: you can change an existing type definition in your custom extension point provided you use the same identifier.

Contribution Descriptors

  • Class: org.nuxeo.ecm.platform.types.Type

Existing Contributions

Contributions are presented in the same order as the registration order on this extension point. This order is displayed before the contribution name, in brackets.

  • nuxeo-easyshare-core-2023.10.13.jar /OSGI-INF/extensions.xml
    <extension point="types" target="org.nuxeo.ecm.platform.types.TypeService">
        <type id="EasyShareFolder">
          <label>EasyShareFolder</label>
          <category>Collaborative</category>
          <icon>/img/easyshare.png</icon>
          <bigIcon>/img/easyshare_100.png</bigIcon>
          <description>EasyShareFolder.description</description>
          <default-view>view_documents</default-view>
        </type>
      </extension>
  • nuxeo-platform-audio-core-2023.10.13.jar /OSGI-INF/ecm-types-contrib.xml
    <extension point="types" target="org.nuxeo.ecm.platform.types.TypeService">
    
        <type id="Audio">
          <label>Audio</label>
          <default-view>view_documents</default-view>
          <icon>/icons/audio.png</icon>
          <bigIcon>/icons/audio_100.png</bigIcon>
          <category>SimpleDocument</category>
          <description>Audio.description</description>
          <layouts mode="any">
            <layout>heading</layout>
            <layout>audio_file</layout>
          </layouts>
          <layouts mode="edit">
            <layout>heading</layout>
            <layout>audio_file</layout>
            <layout>dublincore</layout>
          </layouts>
          <layouts mode="drive">
            <layout>heading</layout>
            <layout>dublincore</layout>
          </layouts>
        </type>
    
      </extension>
  • nuxeo-platform-comment-web-2023.10.13.jar /OSGI-INF/comment-types-contrib.xml
    <extension point="types" target="org.nuxeo.ecm.platform.types.TypeService">
    
        <type id="CommentRoot">
          <label>CommentRoot</label>
          <icon>/icons/folder.gif</icon>
          <default-view>view_documents</default-view>
          <layouts mode="any">
            <layout>heading</layout>
          </layouts>
        </type>
    
        <type id="Comment">
          <label>label.document.comment</label>
          <icon>/icons/comment.png</icon>
          <default-view>comment_view</default-view>
          <create-view>comment_create</create-view>
        </type>
      </extension>
  • nuxeo-platform-imaging-core-2023.10.13.jar /OSGI-INF/imaging-types-contrib.xml
    <extension point="types" target="org.nuxeo.ecm.platform.types.TypeService">
    
        <type id="PictureBook">
          <label>PictureBook</label>
          <icon>/icons/picturebook.gif</icon>
          <bigIcon>/icons/picturebook_100.png</bigIcon>
          <description>PictureBook.description</description>
          <category>Collaborative</category>
          <default-view>view_documents</default-view>
          <layouts mode="any">
            <layout>heading</layout>
          </layouts>
          <contentViews category="content">
            <contentView>document_content</contentView>
          </contentViews>
          <contentViews category="trash_content">
            <contentView showInExportView="false">
              document_trash_content
            </contentView>
          </contentViews>
        </type>
    
        <type id="Picture">
          <label>Picture</label>
          <default-view>view_documents</default-view>
          <icon>/icons/image.gif</icon>
          <bigIcon>/icons/image_100.png</bigIcon>
          <category>SimpleDocument</category>
          <description>Picture.description</description>
          <layouts mode="any">
            <layout>heading</layout>
            <layout>picture</layout>
          </layouts>
          <layouts mode="edit">
            <layout>heading</layout>
            <layout>picture</layout>
            <layout>dublincore</layout>
          </layouts>
          <layouts mode="drive">
            <layout>heading</layout>
            <layout>picture</layout>
            <layout>dublincore</layout>
          </layouts>
        </type>
    
      </extension>
  • nuxeo-platform-mail-2023.10.13.jar /OSGI-INF/nxmail-ecm-types-contrib.xml
    <extension point="types" target="org.nuxeo.ecm.platform.types.TypeService">
    
        <type id="MailMessage">
          <label>MailMessage</label>
          <icon>/icons/mail.png</icon>
          <bigIcon>/icons/mail_100.png</bigIcon>
          <category>SimpleDocument</category>
          <default-view>view_documents</default-view>
          <layouts mode="any">
            <layout>mailMessage</layout>
            <layout>noLabelFiles</layout>
          </layouts>
          <layouts mode="edit">
            <layout>mailMessage</layout>
            <layout>noLabelFiles</layout>
            <layout>dublincore</layout>
          </layouts>
          <!-- files content already on summary page -->
          <layouts mode="view">
            <layout>mailMessage</layout>
          </layouts>
        </type>
    
        <type id="MailFolder">
          <label>MailFolder</label>
          <icon>/icons/mail_folder.png</icon>
          <bigIcon>/icons/mailfolder_100.png</bigIcon>
          <category>Collaborative</category>
          <default-view>view_documents</default-view>
          <layouts mode="any">
            <layout>mail_folder</layout>
          </layouts>
          <contentViews category="content">
            <contentView>mail_document_content</contentView>
          </contentViews>
          <contentViews category="trash_content">
            <contentView showInExportView="false">
              document_trash_content
            </contentView>
          </contentViews>
        </type>
    
      </extension>
  • nuxeo-platform-userworkspace-2023.10.13.jar /OSGI-INF/userworkspace-types-contrib.xml
    <extension point="types" target="org.nuxeo.ecm.platform.types.TypeService">
    
        <type id="UserWorkspacesRoot">
          <label>UserWorkspacesRoot</label>
          <icon>/icons/workspace.gif</icon>
          <bigIcon>/icons/workspace_100.png</bigIcon>
          <category>SuperDocument</category>
          <description>UserWorkspacesRoot.description</description>
          <default-view>view_documents</default-view>
          <layouts mode="any">
            <layout>heading</layout>
          </layouts>
          <layouts mode="edit">
            <layout>heading</layout>
            <layout>dublincore</layout>
          </layouts>
          <contentViews category="content">
            <contentView>document_content</contentView>
          </contentViews>
          <contentViews category="trash_content">
            <contentView showInExportView="false">
              document_trash_content
            </contentView>
          </contentViews>
        </type>
    
      </extension>
  • nuxeo-platform-video-2023.10.13.jar /OSGI-INF/ui-types-contrib.xml
    <extension point="types" target="org.nuxeo.ecm.platform.types.TypeService">
        <type id="Video">
          <label>Video</label>
          <default-view>view_documents</default-view>
          <icon>/icons/video.png</icon>
          <bigIcon>/icons/video_big.png</bigIcon>
          <category>SimpleDocument</category>
          <description>Video.description</description>
          <layouts mode="any">
            <layout>heading</layout>
            <layout>video_file</layout>
          </layouts>
          <layouts mode="edit">
            <layout>heading</layout>
            <layout>video_file</layout>
            <layout>dublincore</layout>
          </layouts>
          <layouts mode="drive">
            <layout>heading</layout>
            <layout>dublincore</layout>
          </layouts>
        </type>
      </extension>
  • nuxeo-platform-webapp-types-2023.10.13.jar /OSGI-INF/ecm-types-contrib.xml
    <extension point="types" target="org.nuxeo.ecm.platform.types.TypeService">
    
        <type id="Root">
          <label>Server Root</label>
          <icon>/icons/folder.gif</icon>
          <bigIcon>/icons/folder_100.png</bigIcon>
          <description>serverRoot.description</description>
          <category>SuperDocument</category>
          <default-view>view_domains</default-view>
          <layouts mode="any">
            <layout>heading</layout>
          </layouts>
          <layouts mode="edit">
            <layout>heading</layout>
            <layout>dublincore</layout>
          </layouts>
          <contentViews category="content">
            <contentView>document_content</contentView>
          </contentViews>
          <contentViews category="trash_content">
            <contentView showInExportView="false">
              document_trash_content
            </contentView>
          </contentViews>
        </type>
    
        <type id="Domain">
          <label>Domain</label>
          <icon>/icons/domain.gif</icon>
          <bigIcon>/icons/domain.gif</bigIcon>
          <category>SuperDocument</category>
          <description>Domain.description</description>
          <default-view>view_documents</default-view>
          <create-view>create_domain</create-view>
          <views>
            <view id="user_dashboard" value="user_dashboard"/>
          </views>
          <layouts mode="any">
            <layout>heading</layout>
          </layouts>
          <layouts mode="edit">
            <layout>heading</layout>
            <layout>dublincore</layout>
          </layouts>
          <contentViews category="content">
            <contentView>document_content</contentView>
          </contentViews>
          <contentViews category="trash_content">
            <contentView showInExportView="false">
              document_trash_content
            </contentView>
          </contentViews>
        </type>
    
        <type id="WorkspaceRoot">
          <label>WorkspaceRoot</label>
          <icon>/icons/workspace.gif</icon>
          <bigIcon>/icons/workspace_100.png</bigIcon>
          <category>SuperDocument</category>
          <description>WorkspaceRoot.description</description>
          <default-view>view_documents</default-view>
          <layouts mode="any">
            <layout>heading</layout>
          </layouts>
          <layouts mode="edit">
            <layout>heading</layout>
            <layout>dublincore</layout>
          </layouts>
          <contentViews category="content">
            <contentView>document_content</contentView>
          </contentViews>
          <contentViews category="trash_content">
            <contentView showInExportView="false">
              document_trash_content
            </contentView>
          </contentViews>
        </type>
    
        <type id="TemplateRoot">
          <label>TemplateRoot</label>
          <icon>/icons/folder_template.gif</icon>
          <bigIcon>/icons/template_100.png</bigIcon>
          <category>SuperDocument</category>
          <description>TemplateRoot.description</description>
          <default-view>view_documents</default-view>
          <layouts mode="any">
            <layout>heading</layout>
          </layouts>
          <layouts mode="edit">
            <layout>heading</layout>
            <layout>dublincore</layout>
          </layouts>
          <contentViews category="content">
            <contentView>document_content</contentView>
          </contentViews>
          <contentViews category="trash_content">
            <contentView showInExportView="false">
              document_trash_content
            </contentView>
          </contentViews>
        </type>
    
        <type id="Workspace">
          <label>Workspace</label>
          <icon>/icons/workspace.gif</icon>
          <bigIcon>/icons/workspace_100.png</bigIcon>
          <category>Collaborative</category>
          <description>Workspace.description</description>
          <default-view>view_documents</default-view>
          <create-view>create_workspace</create-view>
          <layouts mode="any">
            <layout>heading</layout>
            <!--<layout>file</layout> -->
          </layouts>
          <layouts mode="edit">
            <layout>heading</layout>
            <!--<layout>file</layout> -->
            <layout>dublincore</layout>
          </layouts>
          <contentViews category="content">
            <contentView>document_content</contentView>
          </contentViews>
          <contentViews category="trash_content">
            <contentView showInExportView="false">
              document_trash_content
            </contentView>
          </contentViews>
        </type>
    
        <type id="SectionRoot">
          <label>SectionRoot</label>
          <icon>/icons/section.png</icon>
          <bigIcon>/icons/section_100.png</bigIcon>
          <category>SuperDocument</category>
          <description>SectionRoot.description</description>
          <default-view>view_documents</default-view>
          <layouts mode="any">
            <layout>heading</layout>
          </layouts>
          <layouts mode="edit">
            <layout>heading</layout>
            <layout>dublincore</layout>
          </layouts>
          <contentViews category="content">
            <contentView>section_content</contentView>
          </contentViews>
          <contentViews category="trash_content">
            <contentView showInExportView="false">
              document_trash_content
            </contentView>
          </contentViews>
        </type>
    
        <type id="Section">
          <label>Section</label>
          <icon>/icons/section.png</icon>
          <bigIcon>/icons/section_100.png</bigIcon>
          <category>Collaborative</category>
          <description>Section.description</description>
          <default-view>view_documents</default-view>
          <layouts mode="any">
            <layout>heading</layout>
          </layouts>
          <layouts mode="edit">
            <layout>heading</layout>
            <layout>dublincore</layout>
          </layouts>
          <contentViews category="content">
            <contentView>section_content</contentView>
          </contentViews>
          <contentViews category="trash_content">
            <contentView showInExportView="false">
              document_trash_content
            </contentView>
          </contentViews>
        </type>
    
        <type id="Folder">
          <label>Folder</label>
          <icon>/icons/folder.gif</icon>
          <bigIcon>/icons/folder_100.png</bigIcon>
          <category>Collaborative</category>
          <description>Folder.description</description>
          <default-view>view_documents</default-view>
          <layouts mode="any">
            <layout>heading</layout>
          </layouts>
          <layouts mode="edit">
            <layout>heading</layout>
            <layout>dublincore</layout>
          </layouts>
          <contentViews category="content">
            <contentView>document_content</contentView>
          </contentViews>
          <contentViews category="trash_content">
            <contentView showInExportView="false">
              document_trash_content
            </contentView>
          </contentViews>
        </type>
    
        <type id="OrderedFolder">
          <label>OrderedFolder</label>
          <icon>/icons/ordered_folder.png</icon>
          <bigIcon>/icons/ordered_folder_100.png</bigIcon>
          <category>Collaborative</category>
          <description>OrderedFolder.description</description>
          <default-view>view_documents</default-view>
          <layouts mode="any">
            <layout>heading</layout>
          </layouts>
          <layouts mode="edit">
            <layout>heading</layout>
            <layout>dublincore</layout>
          </layouts>
          <contentViews category="content">
            <contentView>orderable_document_content</contentView>
          </contentViews>
          <contentViews category="trash_content">
            <contentView showInExportView="false">
              document_trash_content
            </contentView>
          </contentViews>
        </type>
    
        <type id="File">
          <label>File</label>
          <icon>/icons/file.gif</icon>
          <bigIcon>/icons/file_100.png</bigIcon>
          <category>SimpleDocument</category>
          <description>File.description</description>
          <default-view>view_documents</default-view>
          <layouts mode="any">
            <layout>heading</layout>
            <layout>file</layout>
          </layouts>
          <layouts mode="edit">
            <layout>heading</layout>
            <layout>file</layout>
            <layout>dublincore</layout>
          </layouts>
        </type>
    
        <type id="Note">
          <label>Note</label>
          <icon>/icons/note.gif</icon>
          <bigIcon>/icons/note_100.png</bigIcon>
          <category>SimpleDocument</category>
          <description>Note.description</description>
          <default-view>view_documents</default-view>
          <layouts mode="any">
            <layout>heading</layout>
            <layout>note</layout>
          </layouts>
          <!-- no more needed since 5.6: use the default summary grid layout -->
          <!--
            <layouts mode="summary">
            <layout>note_summary_layout</layout>
            </layouts>
          -->
          <layouts mode="edit">
            <layout>heading</layout>
            <layout>note</layout>
            <layout>dublincore</layout>
          </layouts>
        </type>
    
        <type id="AdvancedSearch">
          <label>Advanced Search</label>
          <icon>/icons/advanced_search.gif</icon>
          <bigIcon>/icons/folder_100.png</bigIcon>
          <default-view>view_documents</default-view>
        </type>
    
        <type id="Collections">
          <label>Collections</label>
          <description/>
          <default-view>view_documents</default-view>
          <icon>/icons/collection.png</icon>
          <bigIcon>/icons/collection_100.png</bigIcon>
          <category>Collaborative</category>
          <description>Folder.description</description>
          <default-view>view_documents</default-view>
          <layouts mode="any">
            <layout>heading</layout>
          </layouts>
          <layouts mode="edit">
            <layout>heading</layout>
            <layout>dublincore</layout>
          </layouts>
          <contentViews category="content">
            <contentView>document_content</contentView>
          </contentViews>
          <contentViews category="trash_content">
            <contentView showInExportView="false">
              document_trash_content
            </contentView>
          </contentViews>
        </type>
    
        <type id="Collection">
          <label>Collection</label>
          <description/>
          <default-view>view_documents</default-view>
          <icon>/icons/collection.png</icon>
          <bigIcon>/icons/collection_100.png</bigIcon>
          <category>Collaborative</category>
          <description>Folder.description</description>
          <default-view>view_documents</default-view>
          <layouts mode="any">
            <layout>heading</layout>
          </layouts>
          <layouts mode="edit">
            <layout>heading</layout>
            <layout>dublincore</layout>
          </layouts>
          <contentViews category="collectionContent">
            <contentView showInExportView="false">collection_content_contentview</contentView>
          </contentViews>
        </type>
    
        <type id="Favorites">
          <label>Favorites</label>
          <description/>
          <default-view>view_documents</default-view>
          <icon>/icons/pin.png</icon>
          <bigIcon>/icons/pin_100.png</bigIcon>
          <description>Folder.description</description>
          <default-view>view_documents</default-view>
          <layouts mode="any">
            <layout>heading</layout>
          </layouts>
          <layouts mode="edit">
            <layout>heading</layout>
            <layout>dublincore</layout>
          </layouts>
          <contentViews category="collectionContent">
            <contentView showInExportView="false">collection_content_contentview</contentView>
          </contentViews>
        </type>
    
      </extension>
  • nuxeo-retention-2023.3.6.jar /OSGI-INF/retention-core-types.xml
    <extension point="types" target="org.nuxeo.ecm.platform.types.TypeService">
        <type id="RetentionRules">
          <label>Retention Rules</label>
          <icon>/icons/ordered_folder.png</icon>
          <bigIcon>/icons/ordered_folder_100.png</bigIcon>
        </type>
        <type id="RetentionRule">
          <label>Retention Rules</label>
          <icon>/icons/retention_rule.png</icon>
          <bigIcon>/icons/retention_rule.png</bigIcon>
        </type>
      </extension>
  • nuxeo-routing-core-2023.10.13.jar /OSGI-INF/document-routing-ecm-types-contrib.xml
    <extension point="types" target="org.nuxeo.ecm.platform.types.TypeService">
    
        <type id="DocumentRouteInstancesRoot">
          <default-view>view_documents</default-view>
          <label>DocumentRouteInstancesRoot</label>
          <icon>/icons/folder.gif</icon>
        </type>
    
        <type id="DocumentRouteModelsRoot">
          <default-view>view_documents</default-view>
          <label>DocumentRouteModelsRoot</label>
          <icon>/icons/folder.gif</icon>
        </type>
    
        <type coreType="DocumentRoute" id="DocumentRoute">
          <label>DocumentRoute</label>
          <icon>/icons/route.png</icon>
          <bigIcon>/icons/route_100.png</bigIcon>
          <category>Collaborative</category>
          <description>Folder.description</description>
          <default-view>view_documents</default-view>
          <layouts mode="any">
            <layout>heading</layout>
            <layout>step_folder</layout>
          </layouts>
          <layouts mode="edit">
            <layout>heading</layout>
            <layout>dublincore</layout>
          </layouts>
          <layouts mode="header">
            <layout>document_route_header</layout>
          </layouts>
          <layouts mode="summary">
            <layout>summary_document_route_layout</layout>
          </layouts>
          <contentViews category="content">
            <contentView>orderable_document_content</contentView>
          </contentViews>
          <contentViews category="trash_content">
            <contentView>document_trash_content</contentView>
          </contentViews>
        </type>
    
        <type coreType="RouteNode" id="RouteNode">
          <label>Node</label>
          <icon>/icons/step.png</icon>
          <bigIcon>/icons/step_100.png</bigIcon>
          <category>Steps</category>
          <description>File.description</description>
          <default-view>view_documents</default-view>
          <edit-view>edit_route_element</edit-view>
          <layouts mode="any">
            <layout>heading</layout>
          </layouts>
          <layouts mode="edit">
            <layout>heading</layout>
          </layouts>
        </type>
      </extension>
  • nuxeo-search-core-2023.10.13.jar /OSGI-INF/search-ui-types-contrib.xml
    <extension point="types" target="org.nuxeo.ecm.platform.types.TypeService">
    
        <type id="DefaultSearch">
          <label>DefaultSearch</label>
          <icon>/icons/search.png</icon>
          <bigIcon>/icons/search_100.png</bigIcon>
          <description>DefaultSearch.description</description>
          <default-view>home_view_documents</default-view>
          <layouts mode="any">
            <layout>heading</layout>
            <layout>default_search_layout</layout>
            <layout>content_view_display</layout>
          </layouts>
        </type>
    
      </extension>
  • nuxeo-template-rendering-core-2023.10.13.jar /OSGI-INF/types-contrib.xml
    <extension point="types" target="org.nuxeo.ecm.platform.types.TypeService">
    
        <type coretype="TemplateSource" id="TemplateSource">
          <label>TemplateSource</label>
          <icon>/icons/sourcetemplate.png</icon>
          <bigIcon>/icons/sourcetemplate_100.png</bigIcon>
          <default-view>view_documents</default-view>
          <category>SimpleDocument</category>
         <layouts mode="create">
           <layout>heading</layout>
           <layout>templateOptionsWizard</layout>
           <layout>templateOptions</layout>
           <layout>fileWithoutTemplate</layout>
          </layouts>
          <layouts mode="view">
            <layout>heading</layout>
            <layout>templateOptions</layout>
            <layout>templateParams</layout>
          </layouts>
          <layouts mode="edit">
            <layout>heading</layout>
            <!-- <layout>templateOptions</layout>  -->
            <layout>fileWithoutTemplate</layout>
          </layouts>
        </type>
    
      </extension>
  • nuxeo-template-rendering-jaxrs-2023.10.13.jar /OSGI-INF/types-contrib.xml
    <extension point="types" target="org.nuxeo.ecm.platform.types.TypeService">
    
        <type coretype="WebTemplateSource" id="WebTemplateSource">
          <label>WebTemplateSource</label>
          <icon>/icons/webtemplate.png</icon>
          <bigIcon>/icons/webtemplate_100.png</bigIcon>
          <default-view>view_documents</default-view>
          <category>SimpleDocument</category>
          <layouts mode="create">
            <layout>heading</layout>
            <layout>templateOptionsWizard</layout>
            <layout>templateOptions</layout>
            <layout>note</layout>
          </layouts>
          <layouts mode="view">
            <layout>heading</layout>
            <layout>note</layout>
            <layout>templateOptions</layout>
            <layout>templateParams</layout>
            <layout>linkedTemplateBasedDocs</layout>
          </layouts>
          <layouts mode="edit">
            <layout>heading</layout>
            <layout>note</layout>
          </layouts>
        </type>
    
      </extension>